using System;
using System.Collections.Generic;
using System.Text;

namespace BlackJackSimulator
    {
 
    public class Card 
        {
        private CARD_SUIT mCard_SUIT;
        private CARD_SUIT.CD_SUIT_TYPES m_CardSuit;
        private CARD_VALUE.CD_VALUE_TYPES mCarD_VALUE_TYPES;
        private CARD_VALUE mCarD_VALUE = new CARD_VALUE();
        private int m_CardID;
        private int m_NumberValueOfCard;
        private int m_DeckID;
        private string m_PlayerMatrixValue;

        public Card()
            {
           
            }
        public Card(int NumberofDecks)
            {
            mCard_SUIT = new CARD_SUIT(NumberofDecks);
           
          
            }
        public Card(CARD_SUIT CardSuit)
            {
            mCard_SUIT = CardSuit;
            m_CardSuit = CardSuit.GetRndSuit();

            }

        private string m_ActionType;

        public string ActionType
            {
            get { return m_ActionType; }
            set { m_ActionType = value; }
            }
	
       

        public string PlayerMatrixValue
            {
            get { return m_PlayerMatrixValue; }
          
            }

        public int DeckID
            {
            get
                {
                return m_DeckID;
                }
            set
                {
                m_DeckID = value;
                }
            }
        public int NumberValueOfCard
            {
            get
                {
                return m_NumberValueOfCard;
                }
            set
                {
                m_NumberValueOfCard = value;
                }
            }
        public int GetNumberValueOfCD(CARD_VALUE.CD_VALUE_TYPES CardValueType)
            {
            m_NumberValueOfCard = 0;
            m_NumberValueOfCard=mCarD_VALUE.GetValueofCD(CardValueType);
            m_PlayerMatrixValue = mCarD_VALUE.GetPlayerMatrixValueOfCard(CardValueType);
            return m_NumberValueOfCard;
            

            }
        public CARD_VALUE.CD_VALUE_TYPES CardValue
            {
            get
                {
                return mCarD_VALUE_TYPES;
                }
            set
                {
                mCarD_VALUE_TYPES = value;
                m_PlayerMatrixValue = mCarD_VALUE.GetPlayerMatrixValueOfCard(value);
                }
            }
        public CARD_SUIT.CD_SUIT_TYPES cardSuitType
            {
            get
                {
                return m_CardSuit;
                }
            set { m_CardSuit = value; }
            }

        public int CardID
            {
            get
                {
                return m_CardID;
                }
            set
                {
                m_CardID = value;
                }
            }

      
        }
}
